/*
 * @lc app=leetcode.cn id=769 lang=cpp
 *
 * [769] 最多能完成排序的块
 */

#include <iostream>
#include <map>
#include <set>
#include <vector>
using namespace std;

// @lc code=start
class Solution {
   public:
    int maxChunksToSorted(vector<int>& arr) {
        int result = 0;
        int maxValue = 0;

        // 如果下标最大值和数组值最大值一致，则可以分块
        for (int i = 0; i < arr.size(); i++) {
            maxValue = (arr[i] > maxValue) ? arr[i] : maxValue;
            if (maxValue == i) {
                result++;
            }
        }

        return result;
    }
};
// @lc code=end
